#include <linux/uaccess.h>
#include <linux/fs.h>
#include <linux/stat.h>
#include <linux/cdev.h>
#include <linux/io.h>
#include <linux/gpio.h>
#include <linux/slab.h>
#include <linux/irq.h>
#include <linux/mutex.h>
#include <linux/interrupt.h>
#include <linux/bug.h>			/* For BUG_ON.  */
#include <linux/cpu.h>
#include <linux/init.h> /* Needed for the macros */
#include <linux/kernel.h> /* Needed for pr_info() */
#include <linux/module.h> /* Needed by all modules */
#include <linux/delay.h>
#include <linux/smp.h>
#include <linux/kernel_stat.h>
#include <linux/sched.h>
#include <linux/percpu-defs.h>
#include <linux/wait.h>
#include <linux/gpio/driver.h>
#include <linux/atomic.h>
#include <linux/platform_device.h>
#include <linux/poll.h>
#include <linux/kfifo.h>
#include <linux/timer.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/acpi.h>
#include <linux/regmap.h>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>

/**

dts:

&i2c6 {
	status = "okay";
	 myi2c-dev {
		status = "okay";
		compatible ="myi2c-dev";
		reg = <0x70>;
	};
};


 */

static const struct i2c_device_id my_i2c_id[] = { { "myi2c-dev", 0 }, { }, };

MODULE_DEVICE_TABLE(i2c, my_i2c_id);

int my__probe(struct i2c_client *client, const struct i2c_device_id *id) {
	pr_err("my__probe\n");
	return 0;
}

int my_remove(struct i2c_client *client) {
	pr_err("remove\n");
	return 0;
}

static const struct acpi_device_id bmp280_acpi_match[] = {
	{"BMP0580", 0},
	{ },
};

MODULE_DEVICE_TABLE(i2c, bmp280_acpi_match);


static struct i2c_driver my_i2c_driver = {
		.driver =
		{ .name = "my_i2c_driver",
				.acpi_match_table = ACPI_PTR(bmp280_acpi_match),
		},
		.probe = my__probe,
		.id_table = my_i2c_id,
		.remove = my_remove, };

module_i2c_driver( my_i2c_driver);

MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Andy");
MODULE_DESCRIPTION("andy one-key driver");
MODULE_ALIAS("one-key");
